#pragma once

#include <exception>
#include <boost/exception/all.hpp>

struct my_exception :         /* 自定义异常类 */
     virtual std::exception,   /* 虚继承，struct默认public继承 */
     virtual boost::exception  /* 虚继承，struct默认public继承 */
 {
     /* 空实现，不需要实现代码 */
 };

 /* 异常信息的类型 */
typedef boost::error_info<struct tag_err_no, int> err_no;
typedef boost::error_info<struct tag_err_str, std::string> err_str;